// 商品分类模块
import { topCategory } from "@/api/constants"
import { getAllCategory } from '@/api/category'
export default {
  namespaced: true,
  state: () => {
    return {
      // 将商品分类设置为默认的顶级分类
      // 将每一个值都赋一个name属性，变成对象数组
      list: topCategory.map(item => ({ name: item }))
    }
  },
  // 修改分类函数
  mutations: {
    setList (state, payload) {
      // 将所有分类数据(传进来的参数)传给list
      state.list = payload
    },
    // 定义函数，控制当前一级分类的二级分类的显隐
    show (state, id) {
      const currCategory = state.list.find(item => item.id === id)
      currCategory.open = true
    },
    hide (state, id) {
      const currCategory = state.list.find(item => item.id === id)
      currCategory.open = false
    }
  },
  // 获取分类 函数
  actions: {
    async getList (context) {
      const data = await getAllCategory()
      // 给每个一级分类加上控制二级分类显隐的开关
      data.result.forEach(top => {
        top.open = false
      })
      // 修改分类数据
      context.commit('setList', data.result)
    }
  }
}
